<%

Function torneio_avancar_grupos(conexao, id)

		id_rodada = rodada_get_prox
		
		DIM fase, nivel
		
		str = "Select DISTINCT anterior, fase FROM torneios_grupos where status=0 and anterior>0 and id_torneio="&id&" order by fase asc"
    		Set rs = conexao.Execute(str)	
		
		Do while not rs.eof
		
				fase=rs("fase")
				anterior=rs("anterior")
				
				str = "Select DISTINCT fase, nivel FROM torneios_grupos where status<2 and nivel="&anterior&" and fase="&(fase-1)&" and id_torneio="&id
				Set rs2 = conexao.Execute(str)
				
				if rs2.eof then
		
						str = "Select DISTINCT fase, nivel FROM torneios_grupos where status=2 and nivel="&anterior&" and fase="&(fase-1)&" and id_torneio="&id
						Set rs3 = conexao.Execute(str)	
						
						if not rs3.eof then
						
										torneio_avancar_grupos_trocar conexao, id, fase, anterior 		
						
						End If
						
				End If
				
			rs.MoveNext
		Loop
		
		
						
End Function

Function torneio_avancar_grupos_trocar(conexao, id, fase, anterior)

		DIM clubes(10000,2), clubes_prox(10000,1), ind(10000), total, id_grupo, ordem, cont, cont2, p, nivel, posicao, tot_grupos
		
		total=0
		
		str = "Select id, criterio, tipo FROM torneios_grupos where status=2 and nivel="&anterior&" and fase="&(fase-1)&" and id_torneio="&id&" order by posicao asc"
		Set rs = conexao.Execute(str)	
		
		Do while not rs.eof
		
			id_grupo=rs("id")
			
			'str = "Select * FROM criterios where id="&rs("criterio")
			'Set rs2 = conexao_geral.Execute(str)
			
			'ordem = rs2("ordem")
			'if rs("tipo")=2 then
			'		ordem = "fase desc, " & ordem
			'End If
		
			str = "Select id_clube FROM torneios_lista where id_grupo="&id_grupo&" order by posicao"
			Set rs2 = conexao.Execute(str)
			
			cont=1
			
			Do while not rs2.eof
			
				clubes(total,0)=rs2("id_clube")
				clubes(total,1)=cont
				clubes(total,2)=0
			
				total=total+1
				cont=cont+1
				rs2.MoveNext
			Loop	
		
		
			rs.MoveNExt
		Loop

		torneio_ordenar conexao, id, fase-1, anterior, clubes, total
		
		for i=0 to total-1
		clubes(i,1) = clubes(i,1)*10000 + clubes(i,2)
		next
		
		
		ordenar clubes, ind, 0, total, 1	
		
		p=1	
		nivel=100000
		posicao=0
		
		Do while p=1			
				
				str = "Select nivel FROM torneios_grupos where status=0 and anterior="&anterior&" and fase="&fase&" and id_torneio="&id&" and nivel<"&nivel&" order by nivel desc"
				Set rs = conexao.Execute(str)	
				
				if not rs.eof then
				
						nivel = rs("nivel")
						
						str = "Select COUNT(*) as total FROM torneios_grupos where status=0 and anterior="&anterior&" and fase="&fase&" and id_torneio="&id&" and nivel="&nivel
						Set rs = conexao.Execute(str)	
						
						tot_grupos = CInt(rs("total"))
						
						str = "Select id FROM torneios_grupos where status=0 and anterior="&anterior&" and fase="&fase&" and id_torneio="&id&" and nivel="&nivel&" order by nivel desc"
						Set rs = conexao.Execute(str)	
						
						cont=0							
						
						Do while not rs.eof
						
							id_grupo=rs("id")
						
							str = "Select id_clube FROM torneios_lista where id_grupo="&id_grupo&" order by posicao asc"
							Set rs2 = conexao.Execute(str)
							
							
							cont2=0	
						
							Do while not rs2.eof
							
								ult=posicao+cont+tot_grupos*cont2
							
								clubes_prox(ult,0) = id_grupo
								clubes_prox(ult,1) = rs2("id_clube")
							
								cont2=cont2+1
								rs2.MoveNext
							Loop
							
							torneio_grupo_status_ativar conexao, id_grupo
							
							cont=cont+1
							rs.MoveNext
						Loop
						
						posicao = ult+1
				
				Else
				
						p=0
				
				End If
		
		Loop
		

		
		for i=0 to posicao-1
			if total>i then
				torneio_trocar_clube  conexao, clubes_prox(i,0), clubes_prox(i,1), clubes(ind(i),0)
				torneio_atualizar_clube_fase conexao, clubes(ind(i),0), id
			End If
		next


End Function

%>
